package chunmap.app.tools.create;

import chunmap.model.elem.CoordSeqEditor;
import chunmap.model.geom.GeometryException;
import chunmap.model.geom.Polygon;
import chunmap.model.geom.Ring;

public class AreaTool extends LineTool{
	protected @Override void finished(CoordSeqEditor lse)
    {
        if (onCreateFinish != null)
        {
            lse.close();
            Ring ls = null;
            try
            {
                ls = new Ring(lse.toCoordinateSeq());
            }
            catch(GeometryException ex) { 
            	ex.printStackTrace();
            	return; 
            }
            onCreateFinish.fire(new Polygon(ls));
        }
    }
	@Override
	protected int[] toXa(int lastX) {
		int[] ps = new int[lse.size() + 2];

		for (int i = 0, n = lse.size(); i < n; i++) {
			double p = map.getView().x2Screen(lse.getPoint(i).getX());
			ps[i] = (int) p;
		}
		ps[lse.size()] = lastX;
		double p= map.getView().x2Screen(lse.firstPoint().getX());
		ps[lse.size() + 1] =(int)p;

		return ps;
	}
	@Override
	protected int[] toYa(int lastY) {
		int[] ps = new int[lse.size() + 2];

		for (int i = 0, n = lse.size(); i < n; i++) {
			double p = map.getView().y2Screen(lse.getPoint(i).getY());
			ps[i] = (int) p;
		}
		ps[lse.size()] = lastY;
		double p= map.getView().y2Screen(lse.firstPoint().getY());
		ps[lse.size() + 1] =(int)p;

		return ps;
	}
}
